Many programming languages, which are used to create applications that perform functions within a computing environment, support Boolean expressions, such as expression=(a<b). However, hardware structures to implement Boolean expressions are inadequate. For instance, hardware supports condition registers, flags or predicates, but programming languages support byte, halfword, word or doubleword integer formats. Therefore, compilers are used to convert the result of comparisons, or sometimes more complex logical expressions contained in flags, condition fields or predicate fields, into integer words.
Converting a condition code to an integer typically involves one or more expensive, hard to predict branches or the use of a number of instructions and registers (more than two) when using other types of functions, such as a conditional move or select function.